package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * JDBC Java DataBase Connectivity
 */
public class JDBCDemo1 {
    public static void main(String[] args) throws Exception {
        /*
            使用JDBC连接数据库的基本过程
            1:加载驱动
            2:使用驱动管理器与数据库建立连接，并获取Connection对象
            3:通过Connection创建执行语句对象Statement
            4:通过执行语句对象执行SQL语句
            5:如果执行的是DQL语句则会得到查询结果集ResultSet
            6:遍历结果集获取查询数据
            7:关闭数据库连接
         */
        //1加载驱动
        //不同数据库提供的驱动类名字不同
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
                "root",
                "root"
        );
        System.out.println("成功连接数据库!");
        //3
        Statement statement = connection.createStatement();

        /*
            4
            CREATE TABLE userinfo(
                id INT PRIMARY KEY AUTO_INCREMENT,
                username VARCHAR(30),
                password VARCHAR(30),
                nickname VARCHAR(30),
                age INT(3)
            )

         */
        String sql = "CREATE TABLE userinfo(" +
                "  id INT PRIMARY KEY AUTO_INCREMENT," +
                "  username VARCHAR(30)," +
                "  password VARCHAR(30)," +
                "  nickname VARCHAR(30)," +
                "  age INT(3)" +
                ")";
        /*
            5
            Statement提供了用于执行SQL语句的方法:
            boolean execute(String sql)
            执行给定的SQL语句，如果执行后存在查询结果集则返回true

            执行DML语句和DQL语句都有专门对应的execute方法，因此该execute一般
            用于执行DDL语句
         */
        statement.execute(sql);
        System.out.println("表创建成功");
        //6
        connection.close();
    }
}
